import http from "@/api";
import { ReqPage, ResPage } from "@/api/interface";

const baseUrl: string = "/sys/sys_config";

export interface SysConfigPageParam extends ReqPage {
  // 配置key
  configKey?: string;
  // 分类 参考字典: SysConfigCategory
  category?: number;
}

export interface SysConfigPageResult {
  // 主键id
  id: string;
  // 配置key
  configKey: string;
  // 配置值
  configValue: string;
  // 分类 参考字典: SysConfigCategory
  category: number;
  // 备注
  remark: string;
  // 更新时间
  updateTime: string;
}

export const getSysConfigPage = (param: SysConfigPageParam) => {
  return http.get<ResPage<SysConfigPageResult>>(baseUrl + `/page`, param);
};

export interface SysConfigInfoResult {
  // 主键id
  id: string;
  // 配置key
  configKey: string;
  // 配置值
  configValue: string;
  // 分类 参考字典: SysConfigCategory
  category: number;
  // 备注
  remark: string;
}

export const getSysConfigInfo = (id: string) => {
  return http.get<SysConfigInfoResult>(baseUrl + `/info/` + id);
};

/**
 * 通过配置key获取配置value
 * @param configKey 配置key
 */
export const getConfigValueByKey = (configKey: string) => {
  return http.get<string>(baseUrl + `/config/` + configKey);
};

export interface SysConfigSaveParam {
  // 配置key
  configKey?: string;
  // 配置值
  configValue?: string;
  // 分类 参考字典: SysConfigCategory
  category?: number;
  // 备注
  remark?: string;
}

export const saveSysConfig = (param: SysConfigSaveParam) => {
  return http.post(baseUrl + `/save`, param);
};

export interface SysConfigUpdateParam {
  // 主键id
  id?: string;
  // 配置key
  configKey?: string;
  // 配置值
  configValue?: string;
  // 分类 参考字典: SysConfigCategory
  category?: number;
  // 备注
  remark?: string;
}

export const updateSysConfig = (param: SysConfigUpdateParam) => {
  return http.post(baseUrl + `/update`, param);
};

export const deleteSysConfig = (ids: string[]) => {
  return http.post(baseUrl + `/delete`, ids);
};
